﻿using System.Collections.ObjectModel;

namespace Renci.Data.Interop.OpenGIS.Gml
{
    /// <remarks/>
    [System.Xml.Serialization.XmlIncludeAttribute(typeof(ObliqueCartesianCsType))]
    [System.Xml.Serialization.XmlIncludeAttribute(typeof(CylindricalCsType))]
    [System.Xml.Serialization.XmlIncludeAttribute(typeof(PolarCsType))]
    [System.Xml.Serialization.XmlIncludeAttribute(typeof(SphericalCsType))]
    [System.Xml.Serialization.XmlIncludeAttribute(typeof(UserDefinedCsType))]
    [System.Xml.Serialization.XmlIncludeAttribute(typeof(LinearCsType))]
    [System.Xml.Serialization.XmlIncludeAttribute(typeof(TemporalCsType))]
    [System.Xml.Serialization.XmlIncludeAttribute(typeof(VerticalCsType))]
    [System.Xml.Serialization.XmlIncludeAttribute(typeof(CartesianCsType))]
    [System.Xml.Serialization.XmlIncludeAttribute(typeof(EllipsoidalCsType))]
    [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "2.0.50727.3038")]
    [System.SerializableAttribute()]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    [System.Xml.Serialization.XmlTypeAttribute(Namespace = "http://www.opengis.net/gml")]
    public abstract class AbstractCoordinateSystemType : AbstractCoordinateSystemBaseType
    {
        private Collection<IdentifierType> _csIds = new Collection<IdentifierType>();
        /// <remarks/>
        [System.Xml.Serialization.XmlElementAttribute("csID")]
        public Collection<IdentifierType> CsIds
        {
            get
            {
                return this._csIds;
            }
        }

        /// <remarks/>
        [System.Xml.Serialization.XmlElementAttribute("remarks")]
        public StringOrRefType Remarks { get; set; }
        
        private Collection<CoordinateSystemAxisRefType> _usesAxises = new Collection<CoordinateSystemAxisRefType>();
        /// <remarks/>
        [System.Xml.Serialization.XmlElementAttribute("usesAxis")]
        public Collection<CoordinateSystemAxisRefType> UsesAxises
        {
            get
            {
                return this._usesAxises;
            }
        }
    }
}
